home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- public class SimpleTimeZone extends TimeZone {
- private int startMonth;
- private int startDay;
- private int startDayOfWeek;
- private int startTime;
- private int endMonth;
- private int endDay;
- private int endDayOfWeek;
- private int endTime;
- private int startYear;
- private int rawOffset;
- private boolean useDaylight = false;
- private static final int millisPerHour = 3600000;
- private final byte[] monthLength = new byte[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
-
- public SimpleTimeZone(int var1, String var2) {
- this.rawOffset = var1;
- ((TimeZone)this).setID(var2);
- }
-
- public SimpleTimeZone(int var1, String var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
- ((TimeZone)this).setID(var2);
- this.rawOffset = var1;
- this.startMonth = var3;
- this.startDay = var4;
- this.startTime = var6;
- this.endMonth = var7;
- this.endDay = var8;
- this.endTime = var10;
- this.useDaylight = true;
- }
-
- public void setStartYear(int var1) {
- this.startYear = var1;
- if (!this.useDaylight) {
- this.useDaylight = true;
- }
-
- }
-
- public void setStartRule(int var1, int var2, int var3, int var4) {
- this.startMonth = var1;
- this.startDay = var2;
- this.startDayOfWeek = var3;
- this.startTime = var4;
- if (!this.useDaylight) {
- this.useDaylight = true;
- }
-
- }
-
- public void setEndRule(int var1, int var2, int var3, int var4) {
- this.endMonth = var1;
- this.endDay = var2;
- this.endDayOfWeek = var3;
- this.endTime = var4;
- if (!this.useDaylight) {
- this.useDaylight = true;
- }
-
- }
-
- public int getOffset(int var1, int var2, int var3, int var4, int var5, int var6) {
- int var7 = this.rawOffset;
- if (var3 >= this.startMonth && var3 <= this.endMonth && var2 >= this.startYear && var1 == 1) {
- if (var3 == this.startMonth) {
- int var8;
- if (this.startDay > 0) {
- var8 = 1 + (this.startDay - 1) * 7 + (7 + this.startDayOfWeek - (var5 - var4 + 1)) % 7;
- } else {
- var8 = this.monthLength[var3] + (this.startDay + 1) * 7 - (7 + (var5 + this.monthLength[var3] - var4) - this.startDayOfWeek) % 7;
- }
-
- if (var4 > var8 || var4 == var8 && var6 >= this.startTime) {
- var7 += 3600000;
- }
- } else if (var3 == this.endMonth) {
- int var9;
- if (this.endDay > 0) {
- var9 = 1 + (this.endDay - 1) * 7 + (7 + this.endDayOfWeek - (var5 - var4 + 1)) % 7;
- } else {
- var9 = this.monthLength[var3] + (this.endDay + 1) * 7 - (7 + (var5 + this.monthLength[var3] - var4) - this.endDayOfWeek) % 7;
- }
-
- if (var4 < var9 || var4 == var9 && var6 < this.endTime) {
- var7 += 3600000;
- }
- } else {
- var7 += 3600000;
- }
-
- return var7;
- } else {
- return var7;
- }
- }
-
- public int getRawOffset() {
- return this.rawOffset;
- }
-
- public void setRawOffset(int var1) {
- this.rawOffset = var1;
- }
-
- public boolean useDaylightTime() {
- return this.useDaylight;
- }
-
- public boolean inDaylightTime(Date var1) {
- GregorianCalendar var2 = new GregorianCalendar();
- ((Calendar)var2).setTime(var1);
- return this.getRawOffset() != this.getOffset(1, ((Calendar)var2).get(1), ((Calendar)var2).get(2), ((Calendar)var2).get(5), ((Calendar)var2).get(7), 0);
- }
-
- public Object clone() {
- return (SimpleTimeZone)super.clone();
- }
-
- public synchronized int hashCode() {
- return this.startMonth ^ this.startDay ^ this.startDayOfWeek ^ this.startTime ^ this.endMonth ^ this.endDay ^ this.endDayOfWeek ^ this.endTime ^ this.rawOffset;
- }
-
- public boolean equals(Object var1) {
- if (this == var1) {
- return true;
- } else if (!(var1 instanceof SimpleTimeZone)) {
- return false;
- } else {
- SimpleTimeZone var2 = (SimpleTimeZone)var1;
- if (this.hashCode() != var2.hashCode()) {
- return false;
- } else if (!((TimeZone)this).getID().equals(((TimeZone)var2).getID())) {
- return false;
- } else if (this.startMonth != var2.startMonth) {
- return false;
- } else if (this.startDay != var2.startDay) {
- return false;
- } else if (this.startDayOfWeek != var2.startDayOfWeek) {
- return false;
- } else if (this.startTime != var2.startTime) {
- return false;
- } else if (this.endMonth != var2.endMonth) {
- return false;
- } else if (this.endDay != var2.endDay) {
- return false;
- } else if (this.endDayOfWeek != var2.endDayOfWeek) {
- return false;
- } else if (this.endTime != var2.endTime) {
- return false;
- } else if (this.startYear != var2.startYear) {
- return false;
- } else if (this.rawOffset != var2.rawOffset) {
- return false;
- } else {
- return this.useDaylight == var2.useDaylight;
- }
- }
- }
- }
-